package com.lanou3g.springmvc.web;

import com.lanou3g.springmvc.bean.User;
import com.lanou3g.springmvc.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

@Controller
@RequestMapping("/user")    // 如果类上添加此注解，那类中每个Handler方法的访问路径前都会加上/user
public class UserController {

    @Autowired
    private UserService userService;

    /**
     * Model用来向页面传递参数
     * 如果参数是引用类型SpringMVC会帮我们做几件事：
     *      1. 创建参数对象
     *      2. 将请求参数中可以与对象属性匹配的参数值取出并且设置到对象中
     *      3. 将参数注入方法参数中
     */
    /*@RequestMapping("/save")
    public String saveUser(User user, Model model) {
        int rows = userService.saveUser(user);
        model.addAttribute("msg", "成功保存"+rows+"条数据");
        return "hello_springmvc";
    }*/

    /**
     * ModelAndView是将视图和数据封装到一个对象中返回
     * @param user
     * @param mv
     * @return
     */
    @RequestMapping("/save")
    public ModelAndView saveUser(User user, ModelAndView mv) {
        int rows = userService.saveUser(user);
        mv.addObject("msg", "成功保存"+rows+"条数据");
        mv.setViewName("hello_springmvc");
        return mv;
    }

}
